package football_behaviour

import (
	"longmen/server/config/global"
	"longmen/server/internal/services/nami/services/sports/football"
	"longmen/server/pkg/db/mysql/models/models_sports"
)

type (
	TeamApiResponse struct {
		Code  int `json:"code"`
		Query struct {
			Total int    `json:"total"`
			Type  string `json:"type"`
			ID    int    `json:"id"`
			MinID int    `json:"min_id"`
			MaxID int    `json:"max_id"`
			Limit int    `json:"limit"`
		} `json:"query"`
		Results []Team `json:"results"`
	}
	Team struct {
		ID                  int    `json:"id"`                    // 球队id
		CompetitionID       int    `json:"competition_id"`        // 赛事id（球队所属联赛，杯赛不关联）
		CountryID           int    `json:"country_id"`            // 国家id
		NameZh              string `json:"name_zh"`               // 中文名称
		NameZht             string `json:"name_zht"`              // 粤语名称
		NameEn              string `json:"name_en"`               // 英文名称
		ShortNameZh         string `json:"short_name_zh"`         // 中文简称
		ShortNameZht        string `json:"short_name_zht"`        // 粤语简称
		ShortNameEn         string `json:"short_name_en"`         // 英文简称
		Logo                string `json:"logo"`                  // 球队logo
		National            int    `json:"national"`              // 是否国家队，1-是、0-否
		CountryLogo         string `json:"country_logo"`          // 国家队logo（为国家队时存在）
		FoundationTime      int    `json:"foundation_time"`       // 成立时间
		Website             string `json:"website"`               // 球队官网
		VenueID             int    `json:"venue_id"`              // 场馆id
		MarketValue         int    `json:"market_value"`          // 市值
		MarketValueCurrency string `json:"market_value_currency"` // 市值单位
		TotalPlayers        int    `json:"total_players"`         // 总球员数，-1表示没有该字段数据
		ForeignPlayers      int    `json:"foreign_players"`       // 非本土球员数，-1表示没有该字段数据
		NationalPlayers     int    `json:"national_players"`      // 国家队球员数，-1表示没有该字段数据
		UpdatedAt           int    `json:"updated_at"`            // 更新时间
	}
)

func (r TeamApiResponse) Interface() []football.InsertTeamInterface {
	a := make([]football.InsertTeamInterface, 0)
	for _, record := range r.Results {
		a = append(a, record)
	}
	return a
}

func (c Team) Get() models_sports.FootballTeam {
	global.Log.Debugf("获得足球球队最后更新时间为:%v", c.UpdatedAt)
	return models_sports.FootballTeam{
		ID:                  c.ID,
		CompetitionID:       c.CompetitionID,
		CountryID:           c.CountryID,
		NameZh:              c.NameZh,
		NameZht:             c.NameZht,
		NameEn:              c.NameEn,
		ShortNameZh:         c.ShortNameZh,
		ShortNameZht:        c.ShortNameZht,
		ShortNameEn:         c.ShortNameEn,
		Logo:                c.Logo,
		National:            c.National,
		CountryLogo:         c.CountryLogo,
		FoundationTime:      c.FoundationTime,
		Website:             c.Website,
		VenueID:             c.VenueID,
		MarketValue:         c.MarketValue,
		MarketValueCurrency: c.MarketValueCurrency,
		TotalPlayers:        c.TotalPlayers,
		ForeignPlayers:      c.ForeignPlayers,
		NationalPlayers:     c.NationalPlayers,
		UpdatedAt:           c.UpdatedAt,
	}
}
